package cn.life.business.warehouse.dao;

import cn.life.business.warehouse.entity.po.Warehouse;
import cn.life.business.warehouse.entity.po.WarehouseDetails;
import cn.life.business.warehouse.entity.vo.WarehouseDetailsVo;
import cn.life.business.warehouse.entity.vo.WarehouseVo;
import cn.life.common.entity.vo.Pagination;

import java.util.List;

/**
 * @author 王振宇
 * @Description:
 * @Date 2018-07-31 14:30:46
 */
public interface WarehouseDao {
    /**
     * @Description:    增加仓库主表记录
     * @param warehouse
     * @return:
     * @Author 王振宇
     * @Date 2018/07/31
     */
    Long addWarehouse(Warehouse warehouse);

    /**
     * @Description:    增加仓库明细表记录
     * @param warehouse
     * @return:
     * @Author 王振宇
     * @Date 2018/07/31
     */
    int addWarehouseDetails(Warehouse warehouse);

    /**
     * @Description:    删除仓库主表记录
     * @param warehouse
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    int deleteWarehouse(Warehouse warehouse);

    /**
     * @Description:    删除仓库明细表记录
     * @param warehouse
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    int deleteWarehouseDetails(Warehouse warehouse);

    /**
     * @Description:    修改仓库主表记录
     * @param warehouse
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    int updateWarehouse(Warehouse warehouse);

    /**
     * @Description:    修改仓库明细表记录
     * @param warehouseDetails
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    int updateWarehouseDetails(WarehouseDetails warehouseDetails);

    /**
     * @Description:    查询仓库详情集合
     * @param warehouseVo
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    List<WarehouseDetailsVo> queryWarehouseDetailList(WarehouseVo warehouseVo);

    /**
     * @Description:    查询仓库记录
     * @param warehouseVo
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    Pagination<WarehouseVo> select(WarehouseVo warehouseVo);

    /**
     * @Description:    仓库记录主表详情
     * @param warehouseVo
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    WarehouseVo getWarehouse(WarehouseVo warehouseVo);


    /**
     * @Description:    仓库记录明细表详情
     * @param warehouseVo
     * @return:
     * @Author 王振宇
     * @Date 2018/08/01
     */
    List<WarehouseDetailsVo> getWarehouseDetails(WarehouseVo warehouseVo);

    /**
     * @Description:   根据仓库状态查询主表
     * @param warehouseVo
     * @return:
     * @Author 王振宇
     * @Date 2018/08/02
     */
    Pagination<WarehouseVo> getWarehouseByState(WarehouseVo warehouseVo);
}
